package com.luobo.found.bulider;

/**
 * 23种设计模式之:创建者模式
 *
 * 将一个复杂对象的构建与它的表示分离，使得同样的构建过程可以创建不同的表示
 *
 * 创建者模式的核心思想是将一个"复杂对象的构建算法"与它的"部件及组装方式"分离，
 * 使得构件算法和组装方式可以独立应对变化；复用同样的构建算法可以创建不同的表示，不同的构建过程可以复用相同的部件组装方式。
 *
 * 组成：
 * 建造者（Builder）：对复杂对象的创建过程加以抽象，给出一个抽象接口，以规范产品对象的各个组成部分的建造。
 * 具体创建者（ConcreateBuilder）：实现Builder接口，针对不同的业务逻辑，具体化复杂对象的各个部分的创建。在建造过程完成后，提供产品的实例
 * 指导者（Dierctor）：调用具体建造者来创建复杂对象的各个部分，在指导者中不设计具体产品的信息，只负责保证对象各部分完整创建或者按某种顺序创建。
 * 产品（Product）：要创建的复杂对象，一般来说包含多个部分。
 * @author : AnWen
 * @version :1.0
 * @email : anwen375@qq.com
 * @since : 2020/3/4 20:41
 */
//产品  这里使用玩具(Toy)
public class Toy {

    private String head;
    private String body;
    private String tail;

    public String getHead() {
        return head;
    }

    public void setHead(String head) {
        this.head = head;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }

    public String getTail() {
        return tail;
    }

    public void setTail(String tail) {
        this.tail = tail;
    }

    @Override
    public String toString() {
        return "Toy{" +
                "head='" + head + '\'' +
                ", body='" + body + '\'' +
                ", tail='" + tail + '\'' +
                '}';
    }
}
